KindEditor4.1.10,支持粘贴图片 | 您所在的位置:网站首页 › KindEditor ctrl+v添加图片功能 › KindEditor4.1.10,支持粘贴图片 |
KindEditor4.1.10,使得他能够在Chrome和IE11中直接粘贴复制的图片(比如通过截图工具把图片直接保存在剪切板中),然后调用上传URL上传图片
方法,修改kindeditor.js中的代码: 在5825行附近大概是下面这个样子的: K(doc.body).bind('paste', function (e) { if (self.pasteType === 0) { e.stop(); return; } 在第1行和第2行之间插入:
//处理IE11,Chrome粘贴图片上传 function dopasteImg() { //debugger; var file = null; if (window.clipboardData) {//ie if (clipboardData.files && clipboardData.files.length)//IE11 file = clipboardData.files[0]; else if (!clipboardData.getData("text") && !clipboardData.getData("url")) { alert("不能粘贴文件或图片,请使用IE11或者Chrome浏览器,或使用上传功能"); return true; } } else { if (e.event.clipboardData.items)//chrome for (var i = 0; i //ie fr.onloadend = function (evt) { blb = evt.target.result; sendfile(blb, file.type); } fr.readAsArrayBuffer(file); } } function sendfile(b, t) { var xhr = new XMLHttpRequest(); var formData = new FormData(); var isImg = t.indexOf("image/") === 0; //formData.append('imgFile', file,"untitled." + t.split('/')[1]); //formData.append('imgFile', b); var myBlob = new Blob([b], { "type": t }); formData.append('imgFile', myBlob, "untitled." + t.split('/')[1]); //formData.append('imgFile', b); formData.append('dir', isImg ? 'image' : 'file'); xhr.open('POST', self.uploadJson); xhr.onreadystatechange = function () { if (xhr.readyState == 4&&xhr.status == 200) { // if (fn) { var data = _trim(xhr.responseText); //if (dataType == 'json') { data = _json(data); if (data.error) { if (typeof ($) !== "undefined" && $.messager && $.messager.alert) { $.messager.alert('Error', data.message, 'warning'); } else { alert(data.message); } } else { //self.exec('insertimage', url, title, width, height, border, align); if(K.undef(self.formatUploadUrl, true)) data.url =K.formatUrl(data.url, 'absolute'); self.exec('insertimage', data.url, "from clipboard", undefined, undefined, undefined, undefined); } //} // fn(data); // } } } xhr.send(formData); } return true; } } //debugger; if (dopasteImg()) e.stop(); //处理粘贴结束5825 此代码在chrome中测试通过,上传文件的服务器端处理无须改变,本代码已在chrome v35,IE11上测试通过
其中处理的几个例外情况是: .在IE11和Chrome以外的浏览器中,如果复制了图片,粘贴,有可能会粘贴成这种形式的,如IE10或者Firefox,但也可能会粘贴成 |
CopyRight 2018-2019 实验室设备网 版权所有 |